Telegram Group & Telegram Channel
📝 Контроль объема логов в .NET-приложениях

В больших приложениях поток логов может быть огромным — это перегружает хранилище и снижает производительность.

Полное отключение детальных логов — плохое решение, ведь важные данные могут потеряться. Лучше использовать выборочное логирование.

.NET теперь поддерживает несколько стратегий выборочного логирования:

• Случайная выборка по вероятности

• Выборка по трассировке

• Пользовательские сэмплеры для гибкой настройки

Пример простого пользовательского сэмплера для .NET, который ограничивает вывод логов до примерно 1 сообщения в секунду:
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
var key = eventId.Id.ToString();

var now = DateTime.UtcNow;

var lastTime = _lastLoggedTimes.GetOrAdd(key, DateTime.MinValue);

if ((now - lastTime) >= _interval)
{
_lastLoggedTimes[key] = now;

var message = formatter(state, exception);
Console.WriteLine($"[{now:O}] {logLevel}: {message}");
// Здесь вместо Console.WriteLine — вызов реального логгера
}
else
{
// Пропускаем лог, чтобы не создавать слишком много записей
}
}


Это может снизить затраты на хранение и обработку логов без потери ключевой информации.

➡️ Блог разработчиков .NET

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/csharpproglib/5908
Create:
Last Update:

📝 Контроль объема логов в .NET-приложениях

В больших приложениях поток логов может быть огромным — это перегружает хранилище и снижает производительность.

Полное отключение детальных логов — плохое решение, ведь важные данные могут потеряться. Лучше использовать выборочное логирование.

.NET теперь поддерживает несколько стратегий выборочного логирования:

• Случайная выборка по вероятности

• Выборка по трассировке

• Пользовательские сэмплеры для гибкой настройки

Пример простого пользовательского сэмплера для .NET, который ограничивает вывод логов до примерно 1 сообщения в секунду:

public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
{
var key = eventId.Id.ToString();

var now = DateTime.UtcNow;

var lastTime = _lastLoggedTimes.GetOrAdd(key, DateTime.MinValue);

if ((now - lastTime) >= _interval)
{
_lastLoggedTimes[key] = now;

var message = formatter(state, exception);
Console.WriteLine($"[{now:O}] {logLevel}: {message}");
// Здесь вместо Console.WriteLine — вызов реального логгера
}
else
{
// Пропускаем лог, чтобы не создавать слишком много записей
}
}


Это может снизить затраты на хранение и обработку логов без потери ключевой информации.

➡️ Блог разработчиков .NET

🐸Библиотека шарписта #буст

BY Библиотека шарписта | C#, F#, .NET, ASP.NET




Share with your friend now:
tg-me.com/csharpproglib/5908

View MORE
Open in Telegram


Библиотека шарписта | C F NET ASP NET Telegram | DID YOU KNOW?

Date: |

If riding a bucking bronco is your idea of fun, you’re going to love what the stock market has in store. Consider this past week’s ride a preview.The week’s action didn’t look like much, if you didn’t know better. The Dow Jones Industrial Average rose 213.12 points or 0.6%, while the S&P 500 advanced 0.5%, and the Nasdaq Composite ended little changed.

What is Secret Chats of Telegram

Secret Chats are one of the service’s additional security features; it allows messages to be sent with client-to-client encryption. This setup means that, unlike regular messages, these secret messages can only be accessed from the device’s that initiated and accepted the chat. Additionally, Telegram notes that secret chats leave no trace on the company’s services and offer a self-destruct timer.

Библиотека шарписта | C F NET ASP NET from us


Telegram Библиотека шарписта | C#, F#, .NET, ASP.NET
FROM USA